<template>
  <div class="hello-ezuikit-js">
    <div id="video-container" style="width:850px;height:450px;background: #3d3d3d"></div>
  </div>
</template>

<script>
  import {photoGetLive} from '@/services/model/user'
  import EZUIKit from "ezuikit-js";
  var player = null;
  var accessToken
  import  axios  from 'axios'
  export default {
    data(){
      return{
        accessToken:'',
        form:{},
        url:''
      }
    },
    name: "HelloWorld",

    methods: {

      // 清空云台
      playerNull(){
        player = null
        document.getElementById('video-container').innerHTML= "";
      },
      //初始化云台
      async initVideo(id,type){
        this.playerNull()
        let res=await photoGetLive({id:id})
        this.form=res.data
        let that=this
        // let template
        if(type =='pcRec'){
          this.url='ezopen://open.ys7.com/'+this.form.deviceSerial+'/1.rec'
          // template='45742e2a0397472190454cf0b962b302'
        }else{
          this.url='ezopen://open.ys7.com/'+this.form.deviceSerial+'/1.hd.live'
          // template='fa293d9596394b838a94a79556aee9e0'
        }
        this.$nextTick(()=>{
              player= new EZUIKit.EZUIKitPlayer({
                id: 'video-container', // 视频容器ID
                accessToken: this.form.accessToken,
                url: this.url ,
                template: 'theme', // simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版; theme-可配置主题； 45742e2a0397472190454cf0b962b302
                plugin: ['talk'],
                width: 850,
                height: 450,
                handleSuccess:this.changeType(type)
              });
        })
      },
      //更改type
      changeType(type){
        this.$emit('isCreated',type)
      },

      //开始播放
      play() {
        player.play({
          url: this.url
        });
      },
      //停止播放
      stop() {
        player.stop()
      },
      //开始录像
      startSave() {
        player.startSave()
      },
      //结束录像
      stopSave() {
        player.stopSave(
        )
      },
    //  视频截图（拍照）
      capturePicture(){
        player.capturePicture(
        )
      },
    //  控制云台开始
      PTZstart(direction,speed){
        var _this=this
        axios({
          // 创建请求时使用的方法
          method: 'post', // 默认是 get
          // 将自动加在 url 前
          baseURL: 'https://open.ys7.com/api/lapp/device/ptz/start',

          transformRequest: [function (data) {
            return data;
          }],

          // 在传递给 then/catch 前，修改响应数据
          transformResponse: [function (data) {
            // 对 data 进行任意转换处理
            return data;
          }],
          // 与请求一起发送的 URL 参数
          params: {
            accessToken: this.form.accessToken,
            deviceSerial:this.form.deviceSerial,
            channelNo:this.form.channelNo,
            direction:direction,
            speed:speed
          },
        }).then(function (res) {
          let ress=JSON.parse(res.data)
          if(ress.code!=='200'){
            _this.$message.error(ress.msg)
          }
        }).catch(function (err) {
        });
      },
      //  控制云台停止，
      PTZStop(direction,speed){
        axios({
          // 创建请求时使用的方法
          method: 'post', // 默认是 get
          // 将自动加在 url 前
          baseURL: 'https://open.ys7.com/api/lapp/device/ptz/stop',
          transformRequest: [function (data) {
            return data;
          }],

          // 在传递给 then/catch 前，修改响应数据
          transformResponse: [function (data) {
            // 对 data 进行任意转换处理
            return data;
          }],
          // 与请求一起发送的 URL 参数
          params: {
            accessToken: this.form.accessToken,
            deviceSerial:this.form.deviceSerial,
            channelNo:this.form.channelNo,
            direction:direction,
          },
        }).then(function (response) {
        }).catch(function (error) {
        });
      },

      //  镜头翻转
      mirror(command){
        axios({
          // 创建请求时使用的方法
          method: 'post', // 默认是 get
          // 将自动加在 url 前
          baseURL: 'https://open.ys7.com/api/lapp/device/ptz/mirror',
          transformRequest: [function (data) {
            return data;
          }],

          // 在传递给 then/catch 前，修改响应数据
          transformResponse: [function (data) {
            // 对 data 进行任意转换处理
            return data;
          }],
          // 与请求一起发送的 URL 参数
          params: {
            accessToken: this.form.accessToken,
            deviceSerial:this.form.deviceSerial,
            channelNo:this.form.channelNo,
            command:command,
          },
        }).then(function (response) {
        }).catch(function (error) {
        });
      }
    }
  };
</script>
